<?php  namespace Common\Model;
use Hdphp\Model\Model;
class Cate extends Model
{
//	use表单
	protected $table = 'cate';
//	自动验证
	protected $validate = array(
		array('cname','required','名称不能为空',3,3),
	);
	//添加
	public function store()
	{
		//自动验证
		if(!$this->create()) return false;
		//执行add添加
		$this->add();
		return true;
	}
//	添加子类
	public function addSon()
	{
		if(!$this->create()) return false;
		
		return $this->add();
	}
	public function datagetson($cid)
	{
		$cids = $this->getSon($this->get(),$cid);
		$cids[] = $cid;
		$cids = implode(',', $cids);
//		p($cids);
		$data = $this->where("cid not in($cids)")->get();
//		p($data);
		return Data::tree($data,'cname','cid','cfid');
	}
//	子级递归查找
	public function getSon($data,$cid)
	{
//		设置一个静态变量数组
		static $tmap = array();
//		循环处理$data
		foreach ($data as $k => $v) {
//			判断表父级id等于cid的情况
			if($v['cfid'] == $cid){
//				将cid存入数组里
				$tmap[] = $v['cid'];
//				再次执行getSon
				$this->getSon($data, $v['cid']);
			}
		}
//		将数组return出去
		return $tmap;
	}
	//编辑
	public function edit()
	{
		if(!$this->create()) return false;
//		save方法执行编辑，用的隐藏域
		return $this->save();
	}
//	删除
	public function del($cid)
	{
//		获取被删除的父级值
		$cfid = $this->where('cid',$cid)->pluck('cfid');
//		p($data);
//		修改被删除的儿子辈的父级ID
		$this->where('cfid',$cid)->update(array('cfid'=>$cfid));
//		p($data);
//		执行删除
		$this->where('cid',$cid)->delete();
	}
}
